package com.xtianzhuang.www.study2019.practice.leetcode.study.binary;

public class Solution {
	public static void main(String[] args) {
		System.out.println(Integer.toBinaryString(123));
		String[] str1 = new String[]{"aa", "a", "aaa"};
		String[] str2 = new String[]{"", "a", "aaa"};
		String[] str3 = new String[]{"flower", "flow", "flight"};
		System.out.println(longestCommonPrefix(str1));
		System.out.println(longestCommonPrefix(str2));
		System.out.println(longestCommonPrefix(str3));

	}

	public String addBinary(String a, String b) {
		return b;
	}

	/**
	 * 给定一个 haystack 字符串和一个 needle 字符串，
	 * 在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。
	 * 如果不存在，则返回  -1。
	 * @param haystack
	 * @param needle
	 * @return
	 */
	public int strStr(String haystack, String needle) {
		return haystack.indexOf(needle);

	}

	/**
	 * 编写一个函数来查找字符串数组中的最长公共前缀。
	 * @param strs
	 * @return
	 */
	public static String longestCommonPrefix(String[] strs) {
		if (strs.length == 0) {
			return "";
		} else if (strs.length == 1) {
			return strs[0];
		} else {
			String first = strs[0];
			for (int j = 0; j < first.length(); j++) {
				for (int i = 0; i < strs.length; i++) {
					if (strs[i].length() <= j) {
						return first.substring(0, j);
					}
					if (!strs[i].substring(0, j + 1).equals(first.substring(0, j + 1))) {
						if (j == 0) {
							return "";
						} else {
							return first.substring(0, j);
						}
					}
					if ((j == (first.length() - 1)) && (i == (strs.length - 1))) {
						return first;
					}
				}
			}
		}
		return "";
	}

	public void reverseString(char[] s) {

	}
}
